home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
kermit.columbia.edu
/
kermit.columbia.edu.tar
/
kermit.columbia.edu
/
e
/
misc.save
/
000326_sms.antinode@gmail.com_Sat Mar 13 11:18:46 2010.msg
< prev
next >
Wrap
Internet Message Format
|
2011-07-03
|
5KB
Path: reader1.panix.com!panix!usenet.stanford.edu!postnews.google.com!g28g2000yqh.googlegroups.com!not-for-mail
From: Steven Schweda <sms.antinode@gmail.com>
Newsgroups: comp.protocols.kermit.misc
Subject: Re: C-Kermit 9.0 for VAX?
Date: Fri, 12 Mar 2010 19:40:29 -0800 (PST)
Organization: http://groups.google.com
Lines: 76
Message-ID: <35c371b6-5d75-40c2-89a3-00b977ee9b88@g28g2000yqh.googlegroups.com>
References: <slrnhn34mm.em3.fdc@panix2.panix.com> <cd3c4f24-9503-451d-a2a6-a82aca4152ad@x22g2000yqx.googlegroups.com>
<slrnhn653a.shk.fdc@panix1.panix.com> <b024c26a-a8ec-4ac2-89ad-b6662d8d58bd@a18g2000yqc.googlegroups.com>
<slrnhpl8gu.1ob.fdc@panix3.panix.com>
NNTP-Posting-Host: 209.98.249.184
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
X-Trace: posting.google.com 1268451629 32344 127.0.0.1 (13 Mar 2010 03:40:29 GMT)
X-Complaints-To: groups-abuse@google.com
NNTP-Posting-Date: Sat, 13 Mar 2010 03:40:29 +0000 (UTC)
Complaints-To: groups-abuse@google.com
Injection-Info: g28g2000yqh.googlegroups.com; posting-host=209.98.249.184;
posting-account=OjKUgAkAAAAXAqdVEKd-Gc8RltEUx3Xq
User-Agent: G2/1.0
X-HTTP-UserAgent: Mozilla/5.0 (X11; U; OpenVMS COMPAQ_Professional_Workstation;
en-US; rv:1.8.1.17) Gecko/20081029 SeaMonkey/1.1.12,gzip(gfe),gzip(gfe)
Xref: panix comp.protocols.kermit.misc:15928
Frank da Cruz wrote:
> : You working on that 64-bit math package for 32-bit systems?
> :
> I did it already for Unix. I just use off_t instead of int.
> If a 32-bit system has off_t defined as a 64-bit signed int,
> poof, you have 64-bit arithmetic.
Sadly, on VAX, off_t is 32 bits, and I'm unaware of any
64-bit integer type. Normally I wouldn't care, but someone
recently reminded me that Kermit on VMS doesn't use the C RTL
for file I/O, which did suggest that there might be hope for
proper large-file behavior (even) on VAX. However, if all the
size/offset code is written assuming that off_t will do the
job, then there's probably little hope of finding a practical
way to make it work on VAX.
On the bright side, the builder's P1 "F" option leads to
defining the C macros _LARGEFILE_SOURCE and _LARGEFILE, and
they do seem to persuade a semi-recent non-VAX system (VMS >=
V7.2, DEC C > V5.2 (actually, "__DECC_VER > 50230003")) to use
a 64-bit off_t and CK_OFF_T.
Running a quick "ftp /binary get" on that 5GB file on an
Alpha, I don't get the same unrealistic "File Size: 905019392"
which I did on the VAX, but the "File Size: <blank>" (with the
matching "Estimated Time Left: (unknown)") suggests that
someone somewhere still could use some work. I'll try to keep
an eye open for negative numbers, and let you know.
Got past "Bytes So Far: 2147483647" without going negative.
What could go wrong now?
Also on the missing features list, I just noticed (again?
(Who can remember?)) that the code in ckvfio.c still uses
"struct NAM" everywhere, which means that ODS5 extended file
names can't be used. The code in (my) ckvrtl.c shows one way
to allow the use of the new(er) NAML where it exists. I'm not
sure how many Kermit buffers will overflow if we start using a
maximum name length of NAML$C_MAXRSS (4095) instead of the old
NAM$C_MAXRSS (255). Other code can need revision because
formerly special characters (like, say, ":", "[", or " ") can
now appear in file names (with "^" prefixes). Everything's
complicated (and getting worse all the time). I can try to
put in the basic NAML support, but I would not bet on my doing
all the testing needed to see if everything really works right
on exotic extended file names.
Speaking of maximum name length, nowadays, on VMS,
CKMAXPATH is being set to PATH_MAX (256), which is entirely
unrealistic for ODS5. Listing extract:
[...]
I1 12361 #ifndef CKMAXPATH
I1 X 12362 #ifdef MAXPATHLEN /* (it
probably isn't) */
I1 X 12363 #define CKMAXPATH MAXPATHLEN
I1 X 12364 #else
I1 12365 #ifdef PATH_MAX /* POSIX */
I1 12366 #define CKMAXPATH PATH_MAX
I1 X 12367 #else
[...]
I1 X 12377 #ifdef VMS
I1 X 12378 #define CKMAXPATH 675 /* (derivation
is complicated...) */
I1 X 12379 #else
[...]
35585 static char nambuf[CKMAXPATH]; /* maximum
size of a file spec */
E 256
35586 static char cwdbuf[NAM$C_MAXRSS];
E 255
[...]
I can't help wondering whence came that "675" value, but it's
not getting used, so it may not matter much.